<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>对象的浅拷贝方式</title>
</head>
<body>
    
</body>
<script>
    /*
        对象的浅拷贝 -- 只拷贝对象的第一层数据，第二层的拷贝不到  简单的理解就是不会发生牵一发而动全身的事故
            拷贝对象的方式有非常非常多种，都很简单
    */
    let obj = {
        name:'jimmy',
        age:22
    }
    let cms = obj
    cms.sex = 'man'
    console.log(obj)  //{name: "jimmy", age: 22, sex: "man"}  这中拷贝方式传递的是地址 其中一个改变会改变所有引用或者地址的数据
    let hh = {}
    for (const key in obj) {
        hh[key] = obj[key]
    }
    console.log(hh) //{name: "jimmy", age: 22, sex: "man"}  使用循环遍历 这样的方式拷贝的是值而不是地址，不会发生牵一发而动全身的事故
    let ams = {}
    Object.assign(ams,obj)
    console.log(ams)  //使用原型的assign方法合并
    let osi = {...obj} 
    console.log(osi)   // 使用点语法 也可以实现值的拷贝
</script>
</html>